iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0

訂閱的資料弄好了,要用排程去跑,如果伺服器是架設在自己主機上,可以用linux 的crontab跑,或是用套件 django-crontab 等等。

或是選雲端主機,目前有很多雲端主機可以選,我選 Heroku,因為他有免費方案,只是這個方案,沒有請求的時候(request),會睡覺,下一個request 會比較久,還有一些限制,每個月只能使用550小時,加上信用卡會有額外450小時。還算夠用,假設流量一大,升級就可以了。詳請:heroku Free Dyno Hours

先去heorku 網站建立一個app

再來安裝heroku cli

$ sudo snap install --classic heroku

venv 安裝需要的套件

(venv) $ pip install gunicorn dj-database-url whitenoise

settings.py 把debug 改成 False

...python 
DEBUG = False

MIDDLEWARE = [
    ...
    'whitenoise.middleware.WhiteNoiseMiddleware',
]
...

import os
if not DEBUG:
    import dj_database_url
    db_from_env = dj_database_url.config()
    DATABASES['default'].update(db_from_env)


STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

建立 Procfile 檔案 pdfProject是專案名稱

web: gunicorn pdfProject.wsgi --log-file -

產生 requirements.txt,會顯示這個環境下所有安裝的套件名稱及版本。

(venv)$ pip3 freeze > requirements.txt 

.gitignore

*.pyc
media/*

CLI登入Heroku,會跳,瀏覽器登入就可以了

$ heroku login

這裡 我新建立的 app名稱是 demo-pdf-weather

$ git init 
$ heroku git:remote -a demo-pdf-weather

$ git add .
$ git commit -m "first push"
$ git push heroku master

就會開啟瀏覽器,就看到頁面了

heroku open 

因為是新建立的,所以要建立表格要下 manage.py migrate的指令

$ heorku run python manage.py migrate

也順便建立管理者帳號密碼

$ heroku run python manage.py createsuperuser

demo 主機: https://demo-pdf-weather.herokuapp.com/

參考資料:

如果有任何寫得不好的地方,請跟我說,謝謝。


上一篇
[Day 28] 訂閱(2)
下一篇
[Day 30] Heroku Scheduler
系列文
用 Python 玩 PDF,結合Django 變成一個網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言